using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;

public class 游戏资源管理器 : 单例_基础管理器<游戏资源管理器>
{
    Dictionary<string, Sprite> 贴图缓存 = new Dictionary<string, Sprite>();
    Dictionary<string, AudioClip> 音频缓存 = new Dictionary<string, AudioClip>();
    Dictionary<string, TileBase> 瓦片数据 = new Dictionary<string, TileBase>();
    public Sprite 获取贴图(string namePath) => 获取数据(namePath, 贴图缓存);
    public AudioClip 获取音频(string namePath) => 获取数据(namePath, 音频缓存);
    public TileBase 获取瓦片(string namePath) => 获取数据(namePath, 瓦片数据);
    private T 获取数据<T>(string namePath, Dictionary<string, T> 缓存源) where T : Object
    {
        if (缓存源.ContainsKey(namePath))
            return 缓存源[namePath];

        T data = 资源管理器.获取实例.加载<T>(namePath);
        缓存源.Add(namePath, data);
        return data;
    }

    public T 获取道具<T>(string 道具名) where T : 物品数据
    {
        return 游戏数据管理器.获取实例.获取道具<T>(道具名);
    }

    public 地图物品 获取地图物品(string name)
    {
        return 获取道具<地图物品>(name);
    }
    public 道具物品 获取道具物品(string name)
    {
        return 获取道具<道具物品>(name);
    }
}
